Microsoft Home Microsoft Home

UNIX のセキュリティ


 1/12     UNIX のセキュリティ モデル

ほとんどの UNIX Web サーバーでは、Web サーバーを利用する権限のあるユーザーのリストを管理しています。このアクセス ファイルは Web サーバーによって管理されるもので、コンピュータに対話形式でログオンできるユーザーとグループのリストとはまったく別のものです。

 

Microsoft® Windows® 95/98 や Microsoft® Windows NT® で稼動する多くの Web サーバーでも、UNIX のセキュリティ モデルを使用しています。これには Microsoft® FrontPage® Server Extensions が利用できる FrontPage Personal Web Server、Netscape FastTrack、Netscape Enterprise、Netscape Communications、Netscape Commerce、および O'Reilly WebSite などの Web サーバーが含まれます。この UNIX のセキュリティ モデルの解説は、これらのサーバーにも適用できます。


 

Web サーバーのアクセス ファイルには、各ユーザーの名前とパスワードに加え、コンテンツ、CGI (Common Gateway Interface) スクリプト、およびユーザーがアクセスできるその他のリソースについての詳細情報が含まれています。このファイルには、Apache や NCSA などの Web サーバーでは .htaccess という名前が、Netscape サーバーでは .nsconfig という名前が付けられています。このアクセス ファイルは、ユーザー、グループ、および IP アドレスにさまざまなレベルの権限 (GET (読み取り)、POST (実行)、PUT (書き込み)、および DELETE) を割り当てます。たとえば、FrontPage を使用している作成者には、FrontPage Server Extensions にアクセスして新しいコンテンツを保存するために、HTTP POST コマンドを使う権限が必要です。表示権限のあるユーザーには、コンテンツを読み取るために、HTTP GET コマンドを使う権限が必要です。各グループのメンバー (作成者など) を定義しているこのリストは、アクセス ファイルから指示される別のファイルで定義されています。

Web サーバーに複数のアクセス ファイルが保存されていることがあります。各アクセス ファイルは、そのアクセス ファイルがあるディレクトリと、そのディレクトリの下位にあるサブ ディレクトリ (独自のアクセス ファイルがあるサブ ディレクトリは除く) にセキュリティを提供しています。Web サーバーのコンテンツ全体を通してアクセス ファイルを作成することによって、さまざまなレベルの権限を持つ複数のユーザー セットにサーバーの各領域へのアクセス権を割り当てることができます。

ホスト コンピュータのファイル システムにアクセスして、そのホスト コンピュータでスクリプトやプログラムを実行するには、Web サーバーは UNIX アカウント (通常は "www") で動作します。Web サーバーは UNIX アカウントで動作するので、実行するプロセスやアクセスするファイルは、同じ UNIX アカウントの権限で利用できなければなりません。このため、マルチホスト環境でセキュリティ上の問題が発生する可能性があります。これは、1 人のユーザーの CGI スクリプトで、サーバー上の別のユーザーのコンテンツ領域にあるファイルを読み取ることができるからです。書き込みアクセスがサポートされている場合は、この問題が FrontPage クライアント側にあるため、複雑になります。ユーザーの CGI スクリプトにユーザー自身のコンテンツ領域にあるファイルへ書き込みを行う権限があるときは、CGI スクリプトよって他のユーザーのコンテンツ領域にあるファイルが書き込まれたり、上書きされたりする可能性があります。

FrontPage Server Extensions を含むすべての CGI スクリプトに共通したこのセキュリティ問題を解決するには、CGI スクリプトの実行権限の SUID (Set User ID) ビットを設定することができます。このようにすると、スクリプトの実行時に、Web サーバーと作成対象のコンテンツが強制的に CGI スクリプト プロセスの所有者の UNIX ユーザー アカウントに切り替えられます。スクリプトはコンテンツ領域に格納されていて、コンテンツの所有者のアカウントには他のユーザーのコンテンツ領域に書き込む権限がないので、スクリプトの SUID ビットを設定すれば、ファイルの不正な上書きを防ぐことができます。FrontPage Server Extensions 管理ツールを使えば、各コンテンツ領域に FrontPage Server Extensions 実行可能ファイルを設定して SUID を実行することができます。

UNIX Web サーバーの認証で、ユーザーが Web サーバーにあるページを表示するとき、次のような処理が行われます。

  1. Web サーバーが、ユーザー名とパスワード付きの HTTP GET 要求を受け取ります。
  2. Web サーバーが、該当するアクセス ファイルでユーザーの権限をチェックします。
  3. ユーザーの認証で GET が実行できなかったときは、Web サーバーはユーザーが認証されなかったことを示す 401 エラーを返します。次に、Web ブラウザが、新しい名前とパスワードを入力するダイアログを表示し、要求を再送信します。

  4. ユーザーの認証が終了すると、Web サーバーは UNIX ファイル システムからコンテンツを読み取ろうとします。ファイル システムによって Web サーバーのコンテンツへのアクセスが認められると、そのコンテンツが HTTP 経由で Web ブラウザに送られます。

 

UNIX 認証

 

POST は同じような方法で処理されます。FrontPage を使用中の作成者が FrontPage Server Extensions に要求を送信する場合など、Web サーバーが HTTP POST 要求を受け取ると、Web サーバーは該当するアクセス ファイルでユーザーの権限をチェックします。ユーザーが認証されると、Web サーバーは POST で要求されたプログラムの実行を試みます。プログラムの SUID ビットが設定されているときは、ファイルの所有者の UNIX ユーザー アカウントでプロセスが実行されます。設定されていないときは、Web サーバーの UNIX アカウントでプロセスが実行されます。

UNIX Web サーバーは通常、基本認証を使ってクライアント プログラムを認証します。サーバーが基本認証を使用するときは、Web ブラウザ (または FrontPage クライアント) によって、ユーザーにユーザー名とパスワードの入力を求めるダイアログが表示されます。ユーザー名とパスワードはクリア テキストで送信されます。Web サーバーの中には MD5 として知られる暗号化技術を使用するものもありますが、FrontPage ではこの方式をサポートしていません。

FrontPage は基本認証を使用します。基本認証は、あらゆるファイアウォールやプロキシ サーバーで動作する唯一の認証技術だからです。基本認証は簡単にデコードできる形式でパスワードをネットワークに配信するので、ネットワーク スパイがこの方法で送られたパスワードを盗むのは容易です。セキュリティを重視する場合は、Secure Sockets Layer (SSL) を使って Web サーバーとのすべての通信を暗号化してください。


   1/12      トップ
 
  最終更新日 : 1999 年 4 月
©1999 Microsoft Corporation. All rights reserved. Terms of Use.